package com.itheima.exam;

/**
 * 案例四：某系统的数字密码是一个四位数，如1983，为了安全，需要加密后再传输。
 * 加密规则是：对密码中的每位数，都加5,再对10求余，最后将所有数字顺序反转，得到一串加密后的新数。请设计出满足本需求的加密程序！（ encryption ）
 */
public class Demo04 {

    public static void main(String[] args) {
        //调用方法，对1983进行加密
        int number = encryption(1983);
        System.out.println(number == -1 ? "你要加密的数字不合法" : "加密后结果 = " + number);  //8346
    }

    public static int encryption(int number) {  //例如：1983
        //判断是否是4位数
        if (number < 1000 || number > 9999) {
            return -1;  //返回-1表示要加密的数字不合法
        }
        //1、获取个位、十位、百位、千位数字
        int ge = number % 10;           //3
        int shi = number / 10 % 10;     //8
        int bai = number / 100 % 10;    //9
        int qian = number / 1000;       //1
        //2、对每一位数字加5后再对10取余
        ge = (ge + 5) % 10;     //8
        shi = (shi + 5) % 10;   //3
        bai = (bai + 5) % 10;   //4
        qian = (qian + 5) % 10; //6
        //3、数字顺序反转（个->千，十->百...），得到加密后的结果
        int rs = ge * 1000 + shi * 100 + bai * 10 + qian;  //rs=8346
        //4、返回加密后的结果
        return rs;
    }
}
